package com.wsc.staticproxy.ver03;

import com.wsc.staticproxy.Movable;
import com.wsc.staticproxy.ver01.Tank;

/**
 * 使用代理模式来记录坦克运行时间
 * 这里的坦克代理比坦克本身多做了点事
 * 但最主要的 move 还是没有改变
 */
public class TankProxy implements Movable {

    Tank tank;

    public TankProxy(Tank tank) {
        this.tank = tank;
    }

    @Override
    public void move() {
        long start = System.currentTimeMillis();
        tank.move();
        long end = System.currentTimeMillis();
        long time = end - start;
        System.out.println("坦克运行了："+ time + "ms");
    }

    public static void main(String[] args) {
        TankProxy tankProxy = new TankProxy(new Tank());
        tankProxy.move();
    }
}
